It is common for microprocessor-based electronic equipment to include two or more interconnected printed circuit boards, often including a main circuit board having the main controller or microprocessor (often termed the “motherboard”) and one or more connected “daughterboards”. In many electronic devices, some or all of the daughterboards, may, themselves, be “intelligent”, i.e., may have their own programmable controllers, typically microprocessors.
When electronic devices of these types are operated, upon initial power-up (or, in some cases, upon resetting the microprocessors) some or all devices on the boards need to access and/or execute certain microcode or other code or configuration information. Some or all of this code or information may include what is commonly called “boot-up code”. Because such boot-up code must be available, (e.g. upon power-up), it is often stored in a read only memory (ROM) device mounted on the same board where the microprocessor is mounted. Although ROM components are commonly provided for this purpose, it is, at least theoretically, possible to use any type of non-volatile memory, such as flash memory, SRAM and the like.
In many situations, providing or mounting a separate ROM (or other non-volatile memory) component on an intelligent daughterboard is a non-optimal approach to providing boot-up code. The mounting of a ROM component on a daughterboard occupies surface area on the board which is often needed for accommodating other components or circuitry (particularly since many daughterboards have relatively small surface area). Furthermore, the ROM components themselves undesirably add to the cost of the daughterboard and the cost of mounting such ROM devices undesirably adds to the cost of board fabrication. ROM devices undesirably consume power. Furthermore, ROM devices and similar memory devices may be cumbersome or impossible to reprogram, e.g., to accommodate upgrades and the like. Accordingly, it would be useful to provide a system, method and apparatus for use in booting up an intelligent daughterboard while eliminating or reducing the need for mounting a ROM or other nonvolatile memory on the daughterboard.
Cost is often a consideration in designing and implementing electronic devices and, although there are advantages (noted above) to avoiding the need for mounting nonvolatile memory on a daughterboard, the cost for such an approach can be a significant issue. Accordingly, it would be useful to provide a system, method and apparatus to reduce or avoid the need for mounting nonvolatile memory on an intelligent daughterboard in which at least some of the components or features involved are components and features which are already present, e.g. for another purpose.